/**
 * 
 */
package com.cplsystems.incidencias.vm;

import java.io.File;

import org.zkoss.bind.annotation.Command;
import org.zkoss.bind.annotation.NotifyChange;
import org.zkoss.zk.ui.select.annotation.VariableResolver;
import org.zkoss.zk.ui.util.Clients;

import com.cplsystems.incidencias.app.MetaData;
import com.cplsystems.incidencias.app.utils.IncidenciasConstants;
import com.cplsystems.incidencias.app.utils.IncidenciasUtils;
import com.cplsystems.incidencias.business.ClavePersonal;
import com.cplsystems.incidencias.business.Organizacion;

/**
 * @author César Palalía López (csr.plz@aisa-automation.com)
 * 
 */
@VariableResolver(org.zkoss.zkplus.spring.DelegatingVariableResolver.class)
public class LoginVM extends MetaData {

	private static final long serialVersionUID = -2879897475884493573L;
	private String user;
	private String password;

	@Command
	@NotifyChange({ "user", "password" })
	public void authenticateUser() {
		ClavePersonal clave = clavePersonalService
				.aunthenticate(user, password);
		if (clave != null) {
			Organizacion organizacion = organizacionService
					.getOrganizacionByResponsable(clave.getPersona());
			sessionUtils.addToSession(
					IncidenciasUtils.encrypt(IncidenciasConstants.FIRMA),
					organizacion);
			incidenciasUtils
					.redirect(IncidenciasConstants.GLOBAL_PAGES.HOME_URL);
			
			
			
			File folder = new File(IncidenciasConstants.CARPETA_DOCUMENTOS_TRABAJADOR);
			if(!folder.exists())
				folder.mkdirs();
			folder = new File(IncidenciasConstants.CARPETA_DATOS_ORGANIZACIONALES_TRABAJADOR);
			if(!folder.exists())
				folder.mkdirs();
			
			
		} else {
			user = "";
			password = "";
			IncidenciasUtils.showMessage(
					"Las credenciales ingresadas son inválidas. "
							+ "Por favor intente nuevamente",
					Clients.NOTIFICATION_TYPE_ERROR, 0);
		}
	}

	public String getUser() {
		return user;
	}

	public void setUser(String user) {
		this.user = user;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

}
